import request from '@/utils/request';

/**
 * 获取模型列表
 * @param modelType Number  模型识别目标,0实体识别 1关系抽取
 */

export async function getModelList(data) {
    return request({
        url: `/nlp/model/info/list`,
        method: 'POST',
        data
    });
}

/**
 * 添加模型
 * @param data
 */
export async function addModel(data) {
    return request({
        url: '/nlp/model/modelInfo',
        method: 'post',
        data,
    });
}
/**
 * 删除模型
 * @param modelId
 */
export async function deleteModel(modelId) {
    return request({
        url: '/nlp/model/modelInfo',
        method: 'delete',
        params: { modelId },
    });
}

/**
 * 模型预测
 * @param data {
 *               "content": "string",
 *               "modelId": 0,
 *               "modelType": 0,
 *               "versionId": 0
 *           }
 */
export async function modelForecast(data) {
    return request({
        url: '/nlp/model/modelForecast',
        method: 'post',
        data,
    });
}
/**
 * 查询所有的的模型版本
 */
export async function getAllVersion(data) {
    return request({
        url: '/nlp/model/modelVersions',
        method: 'post',
        data,
    });
}
/**
 * 查询模型算法
 * @param modelType 模型识别目标,0实体识别 1关系抽取
 */
export async function getModelAlgorithms(modelType,algorithmId) {
    return request({
        url: '/nlp/model/algorithms',
        params: { modelType: parseInt(modelType),algorithmId:algorithmId },
    });
}


/**
 * 获取模型下的所有版本列表
 * @param modelId 目标模型id
 */
export async function getVersionList(data) {
    return request({
        url: '/nlp/model/version/list',
        method: 'POST',
        data,
    });
}

/**
 * 添加模型版本
 * @param data
 */
export async function addVersion(data) {
    return request({
        url: '/nlp/model/modelVersion',
        method: 'post',
        data,
    });
}

/**
 * 修改模型版本
 * @param data
 */
export async function editVersion(data) {
    return request({
        url: '/nlp/model/modelVersion',
        method: 'put',
        data,
    });
}

/**
 * 获取模型标签列表
 * @param modelId 模型id
 */
export async function getModelLabels(modelId) {
    return request({
        url: '/nlp/model/objectLabels',
        params: { modelId },
    });
}
/**
 * 查看模型版本详情
 * @param versionId 版本id
 */
export async function viewVersion(versionId) {
    return request({
        url: '/nlp/model/modelVersionDetail',
        params: { versionId },
    });
}
/**
 * 删除模型版本
 * @param versionId  版本id
 */
export async function deleteVersion(versionId) {
    return request({
        url: '/nlp/model/modelVersion',
        method: 'delete',
        params: { versionId },
    });
}

/**
 * 查询模型使用的标注数据集信息
 * @param data
 */
export async function getMarkedDatasetList(data) {
    return request({
        url: 'nlp/model/dataset/list',
        method: 'post',
        data
    });
}

/**
 * 查询模型使用的内置数据集信息
 * @param data
 */
export async function getBuildInDatasetList(data) {
    return request({
        url: 'nlp/model/buildIn/dataset/list',
        method: 'post',
        data
    });
}

/**
 * 删除模型使用的标注数据集
 * @param data
 */
export async function deleteMarkedDataSet(dataSetId,modelId) {
    return request({
        url: '/nlp/model/dataset',
        method: 'delete',
        params:{dataSetId,modelId},
    });
}

/**
 * 添加模型使用的标注数据集
 * @param data
 */
export async function addMarkedDataset(data) {
    return request({
        url: '/nlp/model/modelInfo/dataset',
        method: 'put',
        data,
    });
}

/**
 * 删除模型使用的内置数据集
 * @param data
 */
export async function deleteBuildInDataSet(dataSetId,modelId) {
    return request({
        url: '/nlp/model/buildIn/dataset',
        method: 'delete',
        params:{dataSetId,modelId},
    });
}

/**
 * 添加模型使用的内置数据集
 * @param data
 */
export async function addBuildInDataSet(data) {
    return request({
        url: '/nlp/model/buildIn/dataset',
        method: 'post',
        data,
    });
}

/**
 * 查询模型版本标注数据集列表
 * @param data
 */
export async function getMarkedVersionDataSetList(data) {
    return request({
        url: '/nlp/model/version/dataset/list',
        method: 'post',
        data,
    });
}

/**
 * 查询模型版本内置数据集列表
 * @param data
 */
export async function getBuildInVersionDataSetList(data) {
    return request({
        url: '/nlp/model/version/buildIn/dataset/list',
        method: 'post',
        data,
    });
}

/**
 * 查询模型版本日志
 * @param data
 */
export async function queryVersionLog(versionId) {
    return request({
        url: '/nlp/model/version/log',
        method: 'get',
        params: { versionId },
    });
}





